#if !defined(AFX_GEOPROP_H__E3C3BDFDFDFB_4228_9B42_CD9D1B770AFD__INCLUDED_)
#define AFX_GEOPROP_H__E3C3BDFDFDFB_4228_9B42_CD9D1B770AFD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Prop.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CGeoProp window
class CPropList;
class CGeoProp : public CBCGPProp
{
public:

	CGeoProp(const CString& strGroupName, DWORD_PTR dwData = 0,
		BOOL bIsValueList = FALSE);
	
	// Simple property
	CGeoProp(const CString& strName, const _variant_t& varValue, 
		LPCTSTR lpszDescr = NULL, DWORD_PTR dwData = 0,
		LPCTSTR lpszEditMask = NULL, LPCTSTR lpszEditTemplate = NULL,
		LPCTSTR lpszValidChars = NULL);

// Construction
public:
	virtual void OnSelectCombo ();
	virtual void OnCloseCombo();

	virtual CString FormatProperty ();
	void EnableSpinControl (BOOL bEnable, double dMin, double dMax, double dStep = 0.05);
	// Simple property
	virtual BOOL IsValueChanged () const;
// Attributes
public:
	virtual CSpinButtonCtrl* CreateSpinControl (CRect rectSpin);

// Operations
public:
//	CDiMine3DView *m_pView;
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CGeoProp)
	//}}AFX_VIRTUAL

// Implementation
public:

	virtual ~CGeoProp();

	// Generated message map functions
protected:
	//{{AFX_MSG(CGeoProp)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

// 	DECLARE_MESSAGE_MAP()
protected:
	double m_fMinValue;
	double m_fMaxValue;
	double m_fStep;
};

/////////////////////////////////////////////////////////////////////////////
class CSliderProp : public CBCGPProp
{
public:
	CSliderProp(
		const CString& strName,
		long nValue,
		LPCTSTR lpszDescr = NULL,
		DWORD dwData = 0
		);
	
	virtual BOOL OnUpdateValue ();
	
protected:
	virtual CWnd* CreateInPlaceEdit (CRect rectEdit, BOOL& bDefaultFormat);
	virtual BOOL OnSetCursor () const	{	return FALSE; /* Use default */	}
};
/////////////////////////////////////////////////////////////////////////////
// CPropSliderCtrl window

class CPropSliderCtrl : public CSliderCtrl
{
	// Construction
public:
	CPropSliderCtrl(CSliderProp* pProp, COLORREF clrBack);
	
	// Attributes
protected:
	CBrush			m_brBackground;
	COLORREF		m_clrBack;
	CSliderProp*	m_pProp;
	
	// Operations
public:
	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CPropSliderCtrl)
	//}}AFX_VIRTUAL
	
	// Implementation
public:
	virtual ~CPropSliderCtrl();
	
	// Generated message map functions
protected:
	//{{AFX_MSG(CPropSliderCtrl)
	afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
	//}}AFX_MSG
	afx_msg void HScroll (UINT nSBCode, UINT nPos);
	
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROP_H__E3C3BDF9_E9FB_4228_9B42_CD9D1B770AFD__INCLUDED_)
